package hust.music.service;

import java.util.List;

import hust.music.entity.User;
import hust.music.util.DynamicInfo;

/**
 * UserModService
 * 
 * @author Txazo
 * @since 1.0
 */
public interface UserModService {

	/**
	 * 用户注册
	 * 
	 * @param user 用户实体
	 * @return 用户实体
	 * @throws Exception
	 */
	public User register(User user);

	/**
	 * 用户登录
	 * 
	 * @param user 用户实体
	 * @return 用户实体
	 * @throws Exception
	 */
	public User login(User user);

	/**
	 * 查询用户
	 * 
	 * @param id 用户Id
	 * @return 用户
	 */
	public User get(Integer id);

	/**
	 * 我关注的人
	 * 
	 * @param user 用户
	 * @param firstResult 开始记录
	 * @param maxResult 查询记录数
	 * @return 我关注的人
	 */
	public List<DynamicInfo> getFollow(User user, int firstResult, int maxResult);

	/**
	 * 我关注的人的总数
	 * 
	 * @param user 用户
	 * @return 我关注的人的总数
	 */
	public int getTotalFollow(User user);

	/**
	 * 我的粉丝
	 * 
	 * @param user 用户
	 * @param firstResult 开始记录
	 * @param maxResult 查询记录数
	 * @return 我的粉丝
	 */
	public List<DynamicInfo> getFan(User user, int firstResult, int maxResult);

	/**
	 * 我的粉丝总数
	 * 
	 * @param user 用户
	 * @return 我的粉丝总数
	 */
	public int getTotalFan(User user);

	/**
	 * 我的好友
	 * 
	 * @param user 用户
	 * @param firstResult 开始记录
	 * @param maxResult 查询记录数
	 * @return 我的好友
	 */
	public List<DynamicInfo> getFriend(User user, int firstResult, int maxResult);

	/**
	 * 我的好友总数
	 * 
	 * @param user 用户
	 * @return 我的好友总数
	 */
	public int getTotalFriend(User user);

	public void update(User user);

}